package com.heima.anno;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解
 * 注解的本质就是一个标记。本身没有功能，
 * 真正的功能由框架帮忙实现，需要有人解析这个注解
 * <p>
 * 生命周期：
 * 默认生命周期只存在与源码阶段
 * 我们可以通过在注解上添加一些原注解来设置这个注解的生命周期
 */
@Target({ElementType.METHOD})
//设置生命周期的注解:运行阶段
@Retention(RetentionPolicy.RUNTIME)
public @interface NoAuth {
    /*定义属性*/
    /*属性名后加()*/
    /*属性后跟上default来给属性赋予默认值，
    如果有默认值，在使用这个属性的时候就不用赋值，如果没有默认值，
    在使用这个注解的时候就必须赋值
    如果属性名为value 并且只有这一个属性在赋值的时候属性名value可以不写
    如果属性的名称是value，但是有多个属性 并且其他属性都有默认值 单独给这个value属性赋值时，属性名可以不写
    */

   /* int value() default 0;

    String username() default "";*/
}
